// pages/index/login.js
const auth = require('../../utils/auth.js')

Page({

    /**
     * 页面的初始数据
     */
    data: {
        loading: false
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    /**
     * 微信授权绑定手机号
     * 用于已授权但手机号未绑定的用户
     */
    async onGetPhoneNumber(e) {
        try {
            this.setData({ loading: true })

            // 检查用户是否已登录
            const loginStatus = await auth.checkLoginStatus()
            if (!loginStatus.isLoggedIn) {
                // 如果未登录，先进行登录
                const loginResult = await auth.login()
                if (!loginResult.success) {
                    wx.showModal({
                        title: '授权失败',
                        content: loginResult.message || '请重试',
                        showCancel: false
                    })
                    return
                }
            }

            // 检查是否已经绑定手机号
            const userInfo = auth.getUserInfo()
            if (auth.isValidUserInfo(userInfo)) {
                wx.showModal({
                    title: '提示',
                    content: '您已经绑定过手机号了',
                    showCancel: false
                })
                return
            }

            // 检查授权结果
            if (e.detail.errMsg !== 'getPhoneNumber:ok') {
                wx.showModal({
                    title: '授权失败',
                    content: '需要授权手机号才能继续使用',
                    showCancel: false
                })
                return
            }

            // 调用绑定手机号接口
            const bindResult = await auth.bindPhone({
                code: e.detail.code,
                encryptedData: e.detail.encryptedData,
                iv: e.detail.iv
            })

            if (bindResult.success) {
                // 绑定成功
                wx.showToast({
                    title: '绑定成功',
                    icon: 'success'
                })

                

                // 延迟返回上一页
                setTimeout(() => {
                    wx.navigateBack()
                }, 1500)
            } else {
                // 绑定失败
                wx.showModal({
                    title: '绑定失败',
                    content: bindResult.message || '请重试',
                    showCancel: false
                })
            }
        } catch (error) {
            console.error('微信授权绑定失败:', error)
            wx.showModal({
                title: '绑定失败',
                content: '网络错误，请重试',
                showCancel: false
            })
        } finally {
            this.setData({ loading: false })
        }
    }
})